package com.hsjk.szwj.module.smedia.controller.admin.mediaManager.vo;

import lombok.Data;

import java.util.List;

/**
 * 获取媒资内容信息 Response VO
 */
@Data
public class MediaInfoRespVO {

    private String requestId;
    private MediaInfoBean mediaInfo;

    @Data
    public static class MediaInfoBean {
        private String mediaId;
        private MediaBasicInfoBean mediaBasicInfo;
        private List<FileInfoListBean> fileInfoList;
        private AiRoughDataBean aiRoughData;

        @Data
        public static class MediaBasicInfoBean {
            private String mediaId;
            private String inputURL;
            private String mediaType;
            private String businessType;
            private String source;
            private String title;
            private String description;
            private String category;
            private String mediaTags;
            private String coverURL;
            private String userData;
            private String status;
            private String createTime;
            private String modifiedTime;
            private String deletedTime;
            private String spriteImages;
            private Integer cateId;
            private String biz;
            private String uploadSource;
            private String cateName;
            private String referenceId;
        }

        @Data
        public static class AiRoughDataBean {
            private String result;
            private String status;
            private String saveType;
            private String aiCategory;
            private String aiJobId;
        }

        @Data
        public static class FileInfoListBean {
            private FileBasicInfoBean fileBasicInfo;
            private List<AudioStreamInfoListBean> audioStreamInfoList;
            private List<VideoStreamInfoListBean> videoStreamInfoList;
            private List<SubtitleStreamInfoListBean> subtitleStreamInfoList;

            @Data
            public static class FileBasicInfoBean {
                private String fileName;
                private String fileStatus;
                private String fileType;
                private String fileSize;
                private String fileUrl;
                private String region;
                private String formatName;
                private String duration;
                private String bitrate;
                private String width;
                private String height;
                private String createTime;
                private String modifiedTime;
            }

            @Data
            public static class AudioStreamInfoListBean {
                private String index;
                private String codecName;
                private String codecLongName;
                private String codecTimeBase;
                private String codecTagString;
                private String codecTag;
                private String profile;
                private String sampleFmt;
                private String sampleRate;
                private String channels;
                private String channelLayout;
                private String timebase;
                private String startTime;
                private String duration;
                private String bitrate;
                private String fps;
                private String numFrames;
                private String lang;
            }

            @Data
            public static class VideoStreamInfoListBean {
                private String index;
                private String codecName;
                private String codecLongName;
                private String profile;
                private String codecTimeBase;
                private String codecTagString;
                private String codecTag;
                private String width;
                private String height;
                private String hasBFrames;
                private String sar;
                private String dar;
                private String pixFmt;
                private String level;
                private String fps;
                private String avgFPS;
                private String timebase;
                private String startTime;
                private String duration;
                private String bitrate;
                private String numFrames;
                private String lang;
                private String rotate;
                private String nb_frames;
            }

            @Data
            public static class SubtitleStreamInfoListBean {
                private String index;
                private String codecName;
                private String codecLongName;
                private String codecTimeBase;
                private String codecTagString;
                private String codecTag;
                private String timebase;
                private String startTime;
                private String duration;
                private String lang;
            }
        }
    }
}
